package org.example;

import org.example.domain.Exam;
import org.example.domain.Student_Exam;
import org.example.vo.QuestionVO;
import org.example.vo.StudentExamAnswerVO;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;
import java.util.Map;

public interface Student_ExamService {
    int judgeGeneratePage(Long examId);
    void updateStudentPage_Path(Long examId,String page_path);
    List<Long> selectStudentIdsByExamId(Long examId);
    void updateAllRelationStudentPage_path(Long examId,Long studentId,String page_path);

    /**
     * 将当前考试关联的学生page_path设置为null  然后将对应文件删除
     */
    void removeExamPage(Exam exam);
    int examGeneratePaperInfo(Long examId);
    Student_Exam selectStudentExamByExamAndStudentId(Long examId,Long StudentId);
    void updateStudentStatus(Long examId,Long studentId,String status);
    void updateStudentEnd_time(Long examId, Long studentId, Date date);
    void updateStudentStart_time(Long examId,Long studentId);
    void examAnswerSave(Map<String,String> map);
    StudentExamAnswerVO parseExamAnswer(Student_Exam student_exam);
    void finishExamToUpdateFinishStatus(Long examId);
    void finishExamToUpdateMissStatus(Long examId);
    List<QuestionVO> generateExamPaper(String fileName);
    void studentExamScoreSave(Long examId,Long studentId,int score);
    void studentExamScoreStrSave(Long examId,Long studentId,String score_str);
    List<Student_Exam> selectExamAllStudentByExamId(Long examId);
    void flushExamStudentScore(Student_Exam student_exam);
    //就是为了前端页面展示的需要
    List<String> handleExamReviewInfo(List<QuestionVO> questionVOList,Student_Exam student_exam);
    void reviewSave(Map<String,String> map);
}
